Menu items use a single 'active' state that follows both hover and
keyboard focus. It therefore makes sense for the active item to always
grab the focus, in particular as an item that is sensitive but not
focusable by keynav would be rather weird.
As it turns out, we do have a case that is weird enough where we want
exactly that, so only grab focus if the actor's :can-focus property
allows it.
https://gitlab.gnome.org/GNOME/gnome-shell/issues/171
this.active = active;
if (active) {
this.actor.add_style_class_name('selected');
- this.actor.grab_key_focus();
+ if (this.actor.can_focus)
+ this.actor.grab_key_focus();
} else {
this.actor.remove_style_class_name('selected');
// Remove the CSS active state if the user press the button and